home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / utility / views196.zip / SWTCH.DOC < prev    next >
Text File  |  1997-05-27  |  5KB  |  141 lines

  1. 17.Feb.96
  2.  
  3.             SWTCH V1.1    (Switch)
  4.                ~~~~~~~~~~~~~~~~~~~~~~~~~~
  5.     I would like to hear, if you like this program, or have any comments
  6.     or ideas about it. (You can reach me per EMail, or Fido-Netmail.)
  7.  
  8.     My Fido-Net address is:
  9.         Tobias Winkler@2:2411/901.38  (Bummi-Box,Frankfurt/Oder)
  10.  
  11.     By Internet-EMail I can be reached at this address:
  12.         Tobias_Winkler@p38.f901.n2411.z2.sesom.de
  13.  
  14.  
  15.  Switch is a small utility making it possible to run more than one external
  16.  program from a shell, even if the shell only supports one.
  17.  
  18.  To make it easier, here an example:
  19.   Think about a filemanager, which has an external viewer named VIEW.EXE,
  20.   which is started with key F3. Unfortunately this filemanager has no support
  21.   for different viewers.
  22.   Here is the point, where Switch helps.
  23.   Simply copy SWTCH.EXE over VIEW.EXE and make your SWITCH.INI-file.
  24.   Switch gives you the chance to call different programs, depending on the
  25.   key pressed after the start-key (start-key is F3 in the example).
  26.  
  27.   So MYVIEW.COM could be called, if F4 is pressed after F3. XYZVIEW.EXE if
  28.   F3 is pressed twice. And another viewer, maybe the original VIEW.EXE, can
  29.   be called, if only F3 and no additional key is pressed, after a certain
  30.   time (1/18 second for default).
  31.  
  32.   Last but not least a program can be called, if a the start-key is still
  33.   pressed after timeout.
  34.  
  35.   (So it is possible to call 3 different viewers with only 1 start-key.
  36.    Something for lazy people like me ;-)
  37.  
  38.  Switch uses an ini-file called SWITCH.INI (must be placed to the same
  39.  directory as SWTCH.EXE).
  40.  
  41.  Each line in this file defines a key-code (decimal) and a program for this
  42.  key. Keycode and name of the program must be devided by a comma ",".
  43.  The name of the program must be complete. This means, that the complete path
  44.  of the program and the extension (".EXE" or ".COM") must be included.
  45.  Batchfiles can't be called directly. For them, you have to call your
  46.  COMMAND.COM with /C before the name of the batchfile. (see below for example)
  47.  
  48.  (Keycodes (also called Scancodes) are the values generated by the keyboard
  49.   and sent to IO-port 60h (hexadecimal), when a key is pressed.
  50.  
  51.   If you have no source for these codes, try this turbo-pascal program:
  52.     {--------------------CUT--BEGIN------------------------}
  53.     begin
  54.      repeat
  55.       mem[$40:$1A]:=mem[$40:$1C];        {- clear keybuffer }
  56.       while mem[$40:$1A]=mem[$40:$1C] do;    {- wait for a keypress }
  57.       writeln('Scancode: ',mem[$40:mem[$40:$1A]+1]); {- write scancode }
  58.      until mem[$40:mem[$40:$1A]]=27;     {- Exit if ESC pressed}
  59.     end.
  60.     {--------------------CUT---END-------------------------}
  61.  )
  62.  
  63.  
  64.     Example for SWITCH.INI:
  65.  
  66.     >    9
  67.     >    p,1
  68.     >    m,/MEM,1
  69.     >    62,C:\UTILS\MYVIEW.EXE
  70.     >    28,C:\COMMAND.COM /C VIEWSOME.BAT
  71.     >    61,F:\XYZ\XYZVIEW.EXE
  72.     >    255,C:\UTILS\ANSIVIEW.COM /X
  73.     >    0,C:\SHELL\VIEW.EXE
  74.  
  75.  (Any resemblance of the names to living or dead programs is purely
  76.   coincidental (and absolutely wanted). ;->)
  77.  
  78.  The optional value in the first line is the time in 1/18 seconds, while
  79.  Switch shall wait for a second keypress. (In the example it would be a half
  80.  second. (9 * 1/18=0.5))
  81.  
  82.  [P,1[,2...]    - this optional parameters tells Switch, which commandline-
  83.           parameters shall be given to the viewers
  84.  Hmm, I'll better give an example:
  85.  
  86.     >    p,1,4
  87.  
  88.  will force Switch to give the 1st and the 4th parameter to the called program.
  89.  
  90.  
  91.  [m,<PARAM>,<OFFSET>]    - this is used for support of programs (like NC 5.0)
  92.               which give only the (absolute) memory-address of the
  93.               filename's position in RAM.
  94.               <PARAM> is a string which leads the address as a
  95.               parameter.
  96.               <OFFSET> is a value which will be added to the given
  97.               memory-address, to get the position of the (zero-
  98.               terminated) filename-string.
  99.  Simply said: use
  100.  
  101.     >    m,/MEM,1
  102.  
  103.  for using Switch with NC 5.0.
  104.  
  105.  
  106.  The keycodes 0 and 255 are special ones (because the keyboard won't generate
  107.  them.)
  108.  0 is assumed, if no second key is pressed until timeout.
  109.  255, if no additional key is pressed, and the start-key is still pressed.
  110.  
  111.  If a key was pressed, but is not fitting to a scancode in the ini-file, the
  112.  command from the LAST line of SWITCH.INI will be called. (C:\SHELL\VIEW.EXE in
  113.  the example.)
  114.  
  115.  As parameters (commandline) for the called program is everything taken, what
  116.  is behind the actual programname (divided by a space), plus the parameters
  117.  given to Switch (or at least the parameters allowed with "P,...").
  118.  
  119.  (You can give some special-characters in front of the program-names, for
  120.   some extra-functions:
  121.    ,  - force Switch to give the program none of the parameters
  122.    ;  - wait for a keypress after the program is terminated
  123.    *  - clear screen after the program is terminated
  124.  
  125.  e.g:    0,,;*c:\dos\mem.exe
  126.  )
  127.  
  128.  If the program couldn't be called for any reason, Switch will beep.
  129.  I did not include any messages or helptexts in Switch, to make it as small
  130.  as possible (as possible with TP 7.0 ;-)).
  131.  
  132.  (The reason why, the actual executable file is called SWTCH.EXE, is that
  133.   I use Novell DOS 7, where SWITCH is already an internal command.
  134.  
  135.   (You can imagine what I tried to debug my program, which was not doing
  136.   anything, until I remembered Novell's SWITCH-command... :-)))
  137.  
  138. That's all for now...
  139. Bye
  140.     TW.
  141.